Most modern word processor program modules, desktop publishing program modules, and other document layout program modules include the feature of styles. A style is a named set of formatting properties. A formatting property defines how the characters or paragraphs that are entered by a user will appear on a monitor or printed page. Examples of formatting properties include bold, italics, font size, font face, underline, and color, among many others.
When a new document is created by a user of a word processing program module, the style for the document is typically called "normal" and the new document includes a set of formatting properties. The user can define the "normal" style with the formatting properties that the user typically desires, so that these formatting properties are automatically applied when the user creates a new document. The user can also define other styles and apply these styles to characters or paragraphs in a document. Defining styles refers to the process of storing formatting properties associated with a named style.
The canonical purpose of a style is to enable a document to be marked with various "logical" formatting elements (headings, body text, etc.) and then allow the actual formatting properties (font size, font face, etc.) to be determined by the definition of the style, which the user can edit, thus propagating the formatting changes throughout the document.
In addition to allowing text to be specified as having a certain style, most document preparation and display systems, including word processing program modules and Web browser program modules, also include separate style sheets which define a set of styles for a particular type of document. For example, a "heading" style in an accounting memo may have different formatting properties than those of a "heading" style in a press release. A document is typically associated with a template and derives its styles from that template. Also, some styles may optionally be stored in the document itself.
The advantages of styles are well-known. Suppose, for example, a user has a document consisting of five parts, with each part containing four chapters. The titles of the parts are marked with the following formatting properties: Arial Black, 24 point, bold, centered, all caps. The chapter titles are marked with the following formatting properties: Arial, 20 point, italics, centered. The body text of the document is marked with the following formatting properties: Times New Roman, 10 point.
Further suppose that the user wishes to change all of the chapter titles to be bold. Using direct formatting, the user would go directly to each of the twenty chapter titles and apply the bold formatting property. Direct formatting refers to the process of adding formatting properties "on top of" a style, rather than defining a new style that includes all the formatting properties desired. The direct formatting process can be tedious and time-consuming. Had the user applied a style to the chapter titles, such as a style called "chapter title", the user could simply redefine the "chapter title" style and all of the chapter titles which get their formatting from the "chapter title" style would reflect the redefined style. Similarly, the user could define styles for the titles of the parts, such as "part title", and could further define a style for the body text, such as "text". For example, the "text" style could include the following formatting properties: Times New Roman and 10 point. The "chapter title" style could include the following formatting properties: Arial, 20 point, italics, centered. The "part title" style could include the following formatting properties: Arial Black, 24 point, bold, centered, all caps.
In addition to the advantages of styles described above, styles may serve as fundamental building blocks for many of the features offered by a typical word processing program module. For instance, styles may be used with a Table of Contents feature. When the Table of Contents feature is selected, a table of contents for a document will automatically be created from the paragraphs in the document defined with the "heading" style. As another example, an Outline View feature may use styles to display a hierarchical tree-structured view of a document organized by style. For instance, the paragraph defined by the "heading 1" style will be displayed at the top of the tree-structured view, the paragraph defined by the "heading 2" style will be displayed next, the paragraph defined by the "heading 3" style will then be displayed, etc.
Usability research indicates that most users do not know about styles, do not know how to define their own styles, or find it difficult to define their own styles. Thus, most users apply direct formatting to the text in their documents, e.g., to make a paragraph larger and bold, most users apply a larger font size formatting property and a bold formatting property to the style that was originally applied when the document was created, such as the "normal" style. As a result of not defining and applying styles to similar elements of text in a document, a user suffers in several ways. First, it is very tedious for the user to change the formatting properties of similar elements in a document. Second, the features that use styles as building blocks do not always work properly if the styles are not defined. For instance, if a user selects the Table of Contents feature, but has not defined any paragraphs with a "heading" style, then there will be nothing in the table of contents.
Therefore, there is a need in the art for a program module that simplifies the process of defining a style for a paragraph that the user enters or edits. There is a further need in the art for a program module that simplifies the process of applying a style. There is still a further need in the art for a program module that defines and applies styles to text in a document without requiring the user to understand or define styles. There is also a need for a program module that automatically defines a style for a paragraph that a user has created, or edited. There is a further need for a program module that defines a style for a paragraph that the user has created, whereby advanced features that depend on styles will function properly.